#ifndef __DataStore_h__
#define __DataStore_h__
//---------------------------------------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------------------------------------
class dataStore {

  private:

    char         *filename;

    int          *allData;
    int           numberData;

    double      **dataSimilarity;
    double       *averageDataDistance;

  protected:

    int  splitPosLineIdCode(char*, int);
    int  orderListAncestor(long**&, int, int);
    void MixArray(long*, int);
    void MixArrayX(long*, int, long*, int, long*);
    void MergeSort(long*, int);

  public:

    dataStore();
    dataStore(char*);

    ~dataStore();

    void   Filename(char*);
    void   AllData(const int*, int);
    void   NumberData(int);
    void   DataSimililarity(double**, int);
    void   AverageDataDistance(double*, int);

    char*  Filename(void);
    int    AllData(int*);
    int    NumberData(void);
    int    DataSimililarity(double**);
    int    AverageDataDistance(double*);

    int    OneData(int);
    double OneAverageDataDistance(int);

    void RandomFile(int);
    void OrderFile(char*, char*, int);
    void ReduceFile(char*, char*);

    int ObtainAverageDataDistance(void);

};

#endif
//---------------------------------------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------------------------------------

